From 0f3caf94d6cbc216bb46fd88a9dd47182e8d9f74 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 10 Aug 2015 17:09:11 -0700 Subject: [PATCH] Use a custom trace! macro in resolution Apparently not actually emitting the calls to trace! saves a good deal of stack space, fixing the overflow found in #1875. Closes #1875 --- src/cargo/core/resolver/mod.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index 223966a9d..5cdfefa2a 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -110,6 +110,14 @@ pub use self::encode::Metadata; mod encode; +macro_rules! trace { + ($($e:tt)*) => ( + if cfg!(debug_assertions) { + debug!($($e)*); + } + ) +} + /// Represents a fully resolved package dependency graph. Each node in the graph /// is a package and edges represent dependencies between packages. /// @@ -280,7 +288,7 @@ fn activate(mut cx: Box, cx.visited.remove(id); return finished(cx, registry) } - debug!("activating {}", parent.package_id()); + trace!("activating {}", parent.package_id()); let deps = try!(cx.build_deps(registry, parent, method)); -- 2.30.2